# Файлы необходимые предоставить по заданию: 
 *Логи срабатывания правил (log_1.txt), скриншоты установленных сервисов (ОС) (screen_1.jpg) и IDS (screen_2.jpg), скрипт фильтрации логов (script_1_filterlogs_part2.py), правила (rules_1.txt) и скриншоты тестируемой системы в фазе 1 (screen_test_1.jpg) и в фазе 2 (screen_test_2.jpg)*

# Проведенные действия

## Установлены операционные системы PfSense, BeeBug, Kali Linux и Debian (для агрегации логов). 
![](screen_1.jpg)
![](screen_1_1.jpg)
- В PfSense WAN интерфейс получает IP по DHCP от провайдера. На LAN интерфейсе поднят DHCP Сервер.
- BeeBox подключён к внутренней сети LAN
![](screen_1_2.jpg)
- Debian также подключён к внутренней сети LAN
![](screen_1_3.jpg)
- Kali Linux подключён к внешней сети, но также для настройки PfSense добавлен второй адаптер с внутренней сетью LAN
![](screen_1_4.jpg)
## Настройка PfSense:
 - Для доступа из LAN во внешнюю сеть настроен шлюз![](screen_2.jpg)
 - Для доступа в Интернет из LAN включаем в NAT -> Outbound автоматическую генерацию правил![](screen_2_1.jpg)
 - Для доступа к bWAPP из внешней сети настроен NAT Port Forwad![](screen_2_2.jpg)
 - При настройке NAT также автоматически создано Firewall правило ![](screen_2_3.jpg)
 - Также в настройках системы был включён параметр NAT Reflection mode for port forwards -> Pure NAT
 - Теперь у нас есть доступ в интернет из LAN сети и доступ к bWAPP из внешней сети через WAN 10.20.100.224/bWAPP![](screen_2_4.jpg)
## Скриншоты установленного IDS
- В качестве IDS установлен Snort![](screen_3.jpg)
- WAN интерфейс добавлен в Snort
- На WAN интерфейсе реализовано правило на обнаружение XSS Reflected (PHP_SELF) атак![](screen_3_1.jpg)
- Также настроена отправка Alerts в систему логов PfSense. Пока отключена блокировка хостов по Alert![](screen_3_2.jpg)
## Логи собираются в отдельную машину
- Формат логов - syslog, включена отправка логов на удалённый rsyslog сервер 192.168.45.20 (Debian) с контентом System Events на порту 514![](screen_4.jpg)![](screen_4_1.jpg)
- На Debian сервере установлен и настроен rsyslog сервер. Включено принятие логов по UDP и TCP на порту 514. Также добавлен шаблон **RemoteLogs**, который принимает логи всех категорий.  Логи, полученные по данному шаблону будут сохраняться в каталоге по маске **/var/log/rsyslog/<имя компьютера, откуда пришел лог>/<приложение, чей лог пришел>.log**; конструкция **& ~** говорит о том, что после получения лога, необходимо остановить дальнейшую его обработку.![](screen_4_2.jpg)![](screen_4_3.jpg)
- Папка с логами. Логи от snort в snort.log![](screen_4_4.jpg)
## Проведено тестирование
- Фаза 1. Без включённой защиты, только обнаружение
	- На bWAPP выбираем XSS - Reflected (PHP_SELF) хак![](screen_test_1.jpg)
	- Пишем скрипт в поле и проверяем![](screen_test_1_1.jpg)![](screen_test_1_2.jpg)
	- Проверяем Alerts. Обнаружена атака, но не заблокирован хост атакующего![](screen_test_1_3.jpg)![](screen_test_1_4.jpg)
- Фаза 2. С включённой защитой
	- Включаем в WAN интерфейсе Snort Interfaces блокировку хостов по Alert. Так как WAN интерфейс не может работать в Inline Mode, а только в Legacy Mode, то на не нужно ещё одно правило на блокировку. Блокировка будет происходить по Alert.![[screen_test_2.jpg]]
	- Ещё раз пытаемся использовать <script>alert(123);</script>![](screen_test_2_1.jpg)
	- Проверяем Alerts и Blocking. Видим, что адрес атакующего заблокирован.![](screen_test_2_2.jpg)![](screen_test_2_3.jpg)
	- Из Kali bWAPP не доступен из внешней сети![](screen_test_2_4.jpg)
## Написан скрипт фильтрации логов
- Скрипт написан на Python по регулярному выражение парсит log-файл. Видно, что 2 атаки обнаружено![](screen_5.jpg).